// function函数: function + 函数名 + (参数: 类型, 参数2: 类型, ...): 类型 { 函数内容 }
let 小明 = '5岁';
let 小强 = '7岁';

function get(人: string): string {
    return 人;
}

console.log(get(小强))

// 箭头函数: (参数: 类型, 参数2: 类型, ...): 类型 => { 函数内容 }
let 小明2 = '5岁';
let 小强2 = '7岁';

let get2 = (人: string): string => {
    return 人;
}

get2('a')
console.log(get2(小强2))

// 可选参数 (参数?: 类型)
function a(b?: string) {
    return b;
}

console.log(a('aaa'))

// 参数默认值 (参数: 类型 = 默认值) 有默认值的参数就是可选参数
function b(c: string = 'a') {
    return c;
}

console.log(b('c'));

// 子函数
// 1
function pre() {
    function child() {
        return ''
    }
    function child3() {
        return ''
    }
    function child4() {
        return ''
    }

    return {
        child,
        child3,
        child4,
    }
}

pre().child();

// 2
function pre2() {
    return {
        child2: () => {
            return '';
        }
    }
}

pre2().child2()

// 3
function pre3() {
    return {
        child5: function () {
            return '';
        }
    }
}

pre3().child5()